knitr::opts_chunk$set(echo = TRUE)
invisible(lapply(
c("dplyr", "data.table", "matrixStats", "ggplot2", "reshape2",
"ggrepel", "pROC", "stringr", "tibble", "viridis", "ggridges"),
function(pkg) suppressPackageStartupMessages(library(pkg, character.only = TRUE))
))
##########################################################################################
## LSHTM: Maria’s data that she used for the hvCpG paper can be accessed from ing-p5 here:
# /mnt/old_user_accounts/p3/maria/PhD/Data/datasets/
#
# Her hvCpG scripts are here:
# /mnt/old_user_accounts/p3/maria/PhD/Projects/hvCpGs/Scripts/
## Load results of Maria for hvCpG
Marias_hvCpGs <- read.csv("~/2024_hvCpG/03_prepDatasetsMaria/Derakhshan2022_ST5_hvCpG.txt")
## Recreate Maria's datasets
folder1 <- normalizePath("/mnt/old_user_accounts/p3/maria/PhD/Data/datasets/GEO/BMIQ + 10 PCs + age + sex OUTLIERS REMOVED/")
rds_files1 <- list.files(path = folder1, pattern = "\\.RDS$", full.names = TRUE)
# Read all .rds files into a list and convert each to a matrix
rds_list_mat1 <- lapply(rds_files1, function(file) {as.matrix(readRDS(file))})
## Name the list elements by file names (without extensions)
names(rds_list_mat1) <- gsub("\\.RDS$", "", basename(rds_files1))
rds_list_mat2 <- readRDS("/mnt/old_user_accounts/p3/maria/PhD/Data/datasets/TCGA/TCGA_BMIQ_age_sex_PC_adjusted_OUTLIERS_REMOVED_round2.RDS")
rds_list_mat2 <- lapply(rds_list_mat2, as.matrix)
rds_list_mat <- c(rds_list_mat1, rds_list_mat2) ; rm(rds_list_mat1, rds_list_mat2)
# Keep only the array background (covered in 15 datasets out of 30)
all_cpgs <- unlist(lapply(rds_list_mat, rownames))
cpg_counts <- table(all_cpgs)
common_cpgs <- names(cpg_counts[cpg_counts >= 15])
rds_list_mat <- lapply(rds_list_mat, function(mat) {
mat[rownames(mat) %in% common_cpgs, ]
})
## Load mQTL-matched controls
cistrans_GoDMC_hvCpG_matched_control <-
read.table("~/2024_hvCpG/03_prepDatasetsMaria/cistrans_GoDMC_hvCpG_matched_control.txt", header = T)
## Load cpgnames (all dpg covered after filtration)
cpgnames <- read.table("~/arraysh5files/sorted_common_cpgs.txt")$V1
## Check if I'm consistent
table(cpgnames %in% common_cpgs) ## PERFECT
##
## TRUE
## 406036
sub_cistrans_GoDMC_hvCpG_matched_control <- cistrans_GoDMC_hvCpG_matched_control[
cistrans_GoDMC_hvCpG_matched_control$hvCpG_name %in% cpgnames &
cistrans_GoDMC_hvCpG_matched_control$controlCpG_name %in% cpgnames,]
rm(common_cpgs, cpg_counts,all_cpgs, folder1, rds_files1, cistrans_GoDMC_hvCpG_matched_control)
Maria’s paper: We defined an hvCpG in the following way:
## Within each dataset, calculate the CpGs variance, and keep the top 5%
top5pcvar <- lapply(rds_list_mat, function(mat) {
# Step 1: Calculate row variances
row_variances = rowVars(mat, na.rm = T)
df = data.frame(var=row_variances, cpg=names(row_variances))
# Step 2
top = top_n(df, as.integer(0.05*nrow(df)), var) ## slightly different than quantile cause keep ties
return(top)
})
## CpGs in the top 5% variance:
cpg_counts_top <- table(unlist(lapply(top5pcvar, rownames))) %>%
data.frame() %>% dplyr::rename("cpgs"="Var1", "all_cpgs_top5pc"="Freq")
## all covered CpGs:
cpg_counts <- table(unlist(lapply(rds_list_mat, rownames))) %>%
data.frame() %>% dplyr::rename("cpgs"="Var1", "all_cpgs"="Freq")
## Both:
cpg_counts_full <- merge(cpg_counts, cpg_counts_top, all.x = T)
rm(cpg_counts, cpg_counts_top)
## in 65% of datasets in which the CpG is covered (following quality control), it has methylation variance in the top 5% of all (non-removed) CpGs:
## rounding, to mimick Maria's approach
hvCpGs_repro_maria <- na.omit(cpg_counts_full[round(cpg_counts_full$all_cpgs_top5pc/cpg_counts_full$all_cpgs, 2) >= 0.65,])
Maria detected 4143 hvCpGs. I detected 4377 hvCpGs. We both have 4143 hvCpGs in common.
The proportion of CpGs than Maria found hvCpGs is p(hvCpG) = 1.02%.
Within each dataset k, calculate the median sd of all CpG j
all_sd_jk <- sapply(rds_list_mat, function(k){
get_sd_k <- function(k){
## Calculate a vector of the row (=per CpG j) sd
return(rowSds(k, na.rm = T))
}
## Return a vector of sds, in a list for each dataset
return(get_sd_k(k))
})
## Plot:
df_long <- reshape2::melt(all_sd_jk, variable.name = "Vector", value.name = "SDs")
## Plot distributions of all vectors on the same graph
ggplot(df_long, aes(x = SDs, color = L1)) +
geom_density() +
labs(title = "Distribution of SDs accross datasets",
x = "SDs",
y = "Density") +
theme_minimal() +
theme(legend.position = "none") +
scale_x_sqrt()
## Calculate lambda per dataset
lambdas = sapply(all_sd_jk, function(x){quantile(x, 0.95, na.rm=T)/median(x, na.rm=T)})
names(lambdas) <- gsub(".95%", "", names(lambdas))
# Histogram with kernel density
ggplot(data.frame(lambda=lambdas, dataset=names(lambdas)),
aes(x = lambdas)) +
geom_histogram(aes(y = after_stat(density)),
colour = 1, fill = "white", binwidth = .1) +
geom_density(lwd = 1, colour = 4,
fill = 4, alpha = 0.25)+
theme_minimal() +
geom_vline(xintercept = median(lambdas), col = "red")
median(lambdas) #1.878303
## [1] 4.192186
Which datasets have a higher lambda, and why?
df = data.frame(nind=sapply(rds_list_mat, ncol),
dataset=names(rds_list_mat),
lambda=lambdas,
tissue = sapply(strsplit(names(rds_list_mat), "_"), `[`, 1),
ethnicity=sapply(strsplit(names(rds_list_mat), "_"), `[`, 2)) %>%
mutate(dataset=ifelse(dataset %in% c("Blood_Cauc", "Blood_Hisp"), "Blood_Cauc_Hisp", dataset)) %>%
mutate(dataset=ifelse(dataset %in% c("Blood_Mexican", "Blood_PuertoRican "), "Blood_Mex_PuertoRican ", dataset)) %>%
mutate(dataset=ifelse(dataset %in% c("CD4+_Estonian", "CD8+_Estonian"), "CD4+_CD8+_Estonian", dataset)) %>%
mutate(dataset=ifelse(dataset %in% c("Saliva_Hisp", "Saliva_Cauc"), "Saliva_Hisp_Cauc", dataset))
ggplot(data = df,
aes(x=lambda, y=nind))+
geom_smooth(method = "lm")+
geom_point()+
geom_label_repel(aes(label = dataset, fill=dataset), size= 2, alpha=.8, max.overlaps = 25)+
theme_bw()+theme(legend.position = "none")+
scale_x_log10()
## `geom_smooth()` using formula = 'y ~ x'
## Emphasize the outliers
df_long$col = "grey"
df_long$col[df_long$L1 %in% "BulkFrontalCortex"] <- "red"
ggplot(df_long, aes(x = SDs, group = L1, fill = col)) +
geom_density(data = df_long[!df_long$L1 %in% "BulkFrontalCortex",], alpha = .5) +
geom_density(data = df_long[df_long$L1 %in% "BulkFrontalCortex",], alpha = .6) +
scale_fill_manual(values = c("grey", "red"))+
labs(title = "Distribution of SDs accross datasets",subtitle = "Red=BulkFrontalCortex",
x = "SDs",
y = "Density") +
theme_minimal() +
theme(legend.position = "none") +
scale_x_sqrt()
The equation is:
\[ \log\left(P(M_j)\right) = \sum_{i=1}^{n} \log\left( \sum_{Z_j=0}^{1} \left( \sum_{Z_{j,k}=0}^{1} P(M_{i,j} \mid Z_{j,k}) \times P(Z_{j,k} \mid Z_j) \right) \times P(Z_j) \right) \]
The transformation lead to weird values:
test <- readRDS("/mnt/old_user_accounts/p3/maria/PhD/Data/datasets/GEO/Raw_cleaned_beta_matrices_GEO/Blood_Hisp")
test[rownames(test) %in% "cg23089912",5:10]
## GSM1870975 GSM1870977 GSM1870979 GSM1870986 GSM1870989 GSM1870992
## cg23089912 0.8486523 0.8883389 0.8610275 0 0.8572614 0.8153023
test <- readRDS("/mnt/old_user_accounts/p3/maria/PhD/Data/datasets/GEO/BMIQ + 10 PCs + age + sex OUTLIERS REMOVED/Blood_Hisp.RDS")
test[rownames(test) %in% "cg23089912",5:10]
## GSM1870975 GSM1870977 GSM1870979 GSM1870986 GSM1870989
## cg23089912 0.001379438 0.002837506 0.0086327 1.124546e-17 0.002056392
## GSM1870992
## cg23089912 0.0001942933
# GSM1870986
# 0.00000000000000001124546 --> give extreme value in scaling, and p dnorm=0
The zero was weirdly transformed. Is that expected?
Run on LSHTM server (need to be outside of RStudio for parallelising and h5 files access): source(“S01_run_hvCpGdetection_Marias.R”) ## for different datasets
## Load data & functions specific to Maria's arrays (to do before)
system.time(source("../03_prepDatasetsMaria/S02.formatArraysforR.R"))
## ✅ bladder: median_sd=0.0097, lambda=4.3565
## ✅ Blood_Cauc: median_sd=0.0173, lambda=5.0770
## ✅ Blood_Gamb: median_sd=0.0098, lambda=5.1092
## ✅ Blood_Hisp: median_sd=0.0140, lambda=4.8656
## ✅ Blood_Japan: median_sd=0.0151, lambda=3.2459
## ✅ Blood_Mexican: median_sd=0.0132, lambda=3.2132
## ✅ Blood_PuertoRican: median_sd=0.0138, lambda=3.2670
## ✅ breast: median_sd=0.0158, lambda=3.8669
## ✅ Buccals_Cauc: median_sd=0.0177, lambda=3.2204
## ✅ Buccals_Sing_9mo: median_sd=0.0150, lambda=4.1840
## ✅ BulkFrontalCortex: median_sd=0.0174, lambda=4.8999
## ✅ CD4+_Estonian: median_sd=0.0162, lambda=2.6741
## ✅ CD8+_Estonian: median_sd=0.0185, lambda=2.6285
## ✅ colon: median_sd=0.0126, lambda=3.8457
## ✅ CordBlood: median_sd=0.0120, lambda=2.9670
## ✅ head and neck: median_sd=0.0151, lambda=4.3256
## ✅ kidney: median_sd=0.0113, lambda=4.4279
## ✅ liver: median_sd=0.0131, lambda=4.3550
## ✅ lung: median_sd=0.0107, lambda=4.4855
## ✅ PBMC_AfricanAmerican: median_sd=0.0129, lambda=3.4579
## ✅ Placenta: median_sd=0.0223, lambda=4.9945
## ✅ prostate: median_sd=0.0137, lambda=4.9652
## ✅ Saliva_Born: median_sd=0.0117, lambda=4.2006
## ✅ Saliva_Cauc: median_sd=0.0167, lambda=3.3665
## ✅ Saliva_Hisp: median_sd=0.0148, lambda=3.2444
## ✅ Saliva_Ken: median_sd=0.0114, lambda=4.5440
## ✅ Skin_UKTwin: median_sd=0.0167, lambda=2.5167
## ✅ SuperiorTemporalGyrus: median_sd=0.0150, lambda=2.3478
## ✅ thyroid: median_sd=0.0111, lambda=5.0079
## ✅ uterus: median_sd=0.0109, lambda=5.4185
## List of 30
## $ bladder : num 0.00973
## $ Blood_Cauc : num 0.0173
## $ Blood_Gamb : num 0.00985
## $ Blood_Hisp : num 0.014
## $ Blood_Japan : num 0.0151
## $ Blood_Mexican : num 0.0132
## $ Blood_PuertoRican : num 0.0138
## $ breast : num 0.0158
## $ Buccals_Cauc : num 0.0177
## $ Buccals_Sing_9mo : num 0.015
## $ BulkFrontalCortex : num 0.0174
## $ CD4+_Estonian : num 0.0162
## $ CD8+_Estonian : num 0.0185
## $ colon : num 0.0126
## $ CordBlood : num 0.012
## $ head and neck : num 0.0151
## $ kidney : num 0.0113
## $ liver : num 0.0131
## $ lung : num 0.0107
## $ PBMC_AfricanAmerican : num 0.0129
## $ Placenta : num 0.0223
## $ prostate : num 0.0137
## $ Saliva_Born : num 0.0117
## $ Saliva_Cauc : num 0.0167
## $ Saliva_Hisp : num 0.0148
## $ Saliva_Ken : num 0.0114
## $ Skin_UKTwin : num 0.0167
## $ SuperiorTemporalGyrus: num 0.015
## $ thyroid : num 0.0111
## $ uterus : num 0.0109
## List of 30
## $ bladder : num 4.36
## $ Blood_Cauc : num 5.08
## $ Blood_Gamb : num 5.11
## $ Blood_Hisp : num 4.87
## $ Blood_Japan : num 3.25
## $ Blood_Mexican : num 3.21
## $ Blood_PuertoRican : num 3.27
## $ breast : num 3.87
## $ Buccals_Cauc : num 3.22
## $ Buccals_Sing_9mo : num 4.18
## $ BulkFrontalCortex : num 4.9
## $ CD4+_Estonian : num 2.67
## $ CD8+_Estonian : num 2.63
## $ colon : num 3.85
## $ CordBlood : num 2.97
## $ head and neck : num 4.33
## $ kidney : num 4.43
## $ liver : num 4.36
## $ lung : num 4.49
## $ PBMC_AfricanAmerican : num 3.46
## $ Placenta : num 4.99
## $ prostate : num 4.97
## $ Saliva_Born : num 4.2
## $ Saliva_Cauc : num 3.37
## $ Saliva_Hisp : num 3.24
## $ Saliva_Ken : num 4.54
## $ Skin_UKTwin : num 2.52
## $ SuperiorTemporalGyrus: num 2.35
## $ thyroid : num 5.01
## $ uterus : num 5.42
## user system elapsed
## 4.204 0.060 4.263
## Load algorithm (30sec)
system.time(source("../05_hvCpGalgorithm/hvCpG_algorithm_detection_v3.R"))
## user system elapsed
## 0.085 0.004 0.088
## Load full cpg names
cpg_names <- readLines("~/arraysh5files/sorted_common_cpgs.txt")
length(cpg_names); head(cpg_names)
## [1] 406036
## [1] "cg00000029" "cg00000108" "cg00000109" "cg00000165" "cg00000236"
## [6] "cg00000289"
## [1] 406036
# [1] "cg00000029" "cg00000108" "cg00000109" "cg00000165" "cg00000236" "cg00000289"
## Load hvCpG of Maria and matching mQTL
cistrans_GoDMC_hvCpG_matched_control <- read.table("../03_prepDatasetsMaria/cistrans_GoDMC_hvCpG_matched_control.txt", header = T)
## In which positions are they?
cpg_names[cpg_names %in% cistrans_GoDMC_hvCpG_matched_control$hvCpG_name] %>% length
## [1] 3644
cpg_names[cpg_names %in% cistrans_GoDMC_hvCpG_matched_control$controlCpG_name] %>% length
## [1] 3453
sub_cistrans_GoDMC_hvCpG_matched_control <- cistrans_GoDMC_hvCpG_matched_control[
cistrans_GoDMC_hvCpG_matched_control$hvCpG_name %in% cpg_names &
cistrans_GoDMC_hvCpG_matched_control$controlCpG_name %in% cpg_names,]
## Positions of targets in cpg_names:
match(sub_cistrans_GoDMC_hvCpG_matched_control$hvCpG_name, cpg_names)
## [1] 286867 11867 47291 360391 132127 149298 380388 67889 247489 262008
## [11] 280695 387017 4687 44190 97721 114305 154515 162750 269223 285461
## [21] 401478 51312 78828 94696 168965 173956 188127 190187 202999 209910
## [31] 213907 247886 265860 265989 292116 305761 367254 391684 396703 402077
## [41] 379436 11622 26433 78472 162858 239725 323051 391687 4233 11413
## [51] 31005 34621 48784 52814 55043 63806 64760 91836 110035 111472
## [61] 115392 127405 150991 153593 156804 165464 167602 168844 169111 174663
## [71] 186965 199384 217451 232599 253892 256746 272225 274437 277201 277801
## [81] 288463 290707 303017 320062 337615 341652 345045 354380 361269 361649
## [91] 362418 366459 396602 3987 9483 15511 23464 26431 34428 46953
## [101] 48747 62797 86585 112252 123529 136471 141256 153053 156899 163733
## [111] 166007 174727 203031 206930 222348 224561 243967 260485 269287 284375
## [121] 289404 293012 322092 322899 332752 340562 344085 357125 358220 363955
## [131] 380589 385824 392169 398302 2258 11392 30844 39649 40490 44848
## [141] 53546 55201 55729 87163 89354 97204 110421 117356 122433 130635
## [151] 131809 132163 135077 139778 141961 147938 154664 172583 173001 185333
## [161] 191979 193205 207127 213500 223005 242347 242825 244255 244403 247702
## [171] 249079 281610 285652 294478 304392 306092 313876 326306 338071 344691
## [181] 369793 370544 375852 379637 383293 390851 393843 405996 35477 39137
## [191] 53460 55483 65044 74218 89281 94251 94496 97123 111668 116837
## [201] 142568 143560 148417 166805 217753 224934 225316 228497 232276 233090
## [211] 240721 251069 267102 269069 283829 285789 308806 310134 318549 320026
## [221] 330572 332603 348649 364547 385775 388580 18026 47826 81976 82873
## [231] 141294 166625 178353 199380 209131 250835 289161 384622 386081 399464
## [241] 1231 13389 16157 16898 22548 25948 25992 30833 31218 31699
## [251] 32502 32688 33321 34583 36699 38507 45243 45967 47905 48544
## [261] 53479 57297 59068 59883 61386 64215 68452 70446 72733 77855
## [271] 87052 88990 97010 100472 101047 105594 110579 110632 112389 122770
## [281] 123111 123199 123740 125674 141037 145537 148574 149261 151292 153444
## [291] 154404 155610 156806 159544 161832 162254 162694 163749 169655 171464
## [301] 177528 187485 193326 194993 195581 198287 200675 201846 206990 208678
## [311] 210442 217026 224059 228575 229409 230010 234745 236747 238519 243665
## [321] 245978 247472 254710 255156 255178 256673 258135 259874 260219 265384
## [331] 268731 271630 274477 278738 280487 280617 284977 285740 287332 294215
## [341] 294728 295893 297554 299130 300623 301990 302953 305395 306307 306751
## [351] 306886 306888 309967 310553 314259 314843 322168 329145 330883 335267
## [361] 337259 337331 337510 339086 339998 341094 343042 343476 345129 348135
## [371] 350257 350801 359957 363786 364740 365129 366690 368046 368760 370075
## [381] 370516 370908 374272 374822 375727 381849 381950 383595 384447 385161
## [391] 386557 386577 387781 390499 392222 392425 398777 398842 399803 402852
## [401] 403106 1051 1319 2534 2642 7988 10707 12517 14598 15134
## [411] 19991 22610 27589 30335 30709 31938 33822 37543 38843 39179
## [421] 44037 50529 51344 52421 55591 56745 58849 61372 66972 67096
## [431] 69182 71005 73576 74939 76316 77430 87303 87549 89265 95002
## [441] 95305 96819 97114 98710 102028 103088 103643 103966 104789 105112
## [451] 105647 105716 119554 121915 123222 127339 129498 133248 135914 137290
## [461] 140000 141344 141656 143295 146776 147606 151132 153162 158087 159428
## [471] 159788 161748 163740 168832 169485 171866 175798 177895 181429 183015
## [481] 183751 186765 193318 196358 199890 200578 208209 216520 217103 225711
## [491] 228738 231479 231883 234283 234475 236737 236901 237611 237766 238190
## [501] 238976 240300 241231 243022 243045 250772 251574 252062 252413 255470
## [511] 255894 257362 261537 264212 265978 268941 270020 270111 272552 274594
## [521] 276112 276485 282312 284724 284978 286002 287754 291403 291615 292076
## [531] 293910 295220 296463 297448 299030 304387 308666 310968 312935 314718
## [541] 316855 317664 321568 325350 331124 332868 333699 337061 337765 342902
## [551] 345533 346020 346481 347753 347889 348803 351360 354720 355181 356210
## [561] 356489 365287 365661 368808 368840 370813 372952 373292 376232 380386
## [571] 381147 381583 385644 390894 390948 396749 401627 402395 402774 404528
## [581] 404669 1133 34999 38259 38309 47246 57616 59458 62395 69731
## [591] 77410 81391 88587 100629 104190 112733 116587 122715 123316 127802
## [601] 135386 142285 145575 147455 154356 160904 201303 207903 255886 269072
## [611] 277221 284922 295805 297161 304232 312728 319658 319700 331180 333257
## [621] 345012 347287 356032 357465 365418 370844 380232 390745 397241 1152
## [631] 1642 2037 2963 4671 4727 4875 4952 5152 5669 6008
## [641] 8180 8474 8643 8886 8929 10918 13225 14027 14136 14450
## [651] 14594 14871 15846 15962 16136 16555 16598 18046 18592 19316
## [661] 19460 19527 21282 21500 21879 22006 22702 23214 23723 27860
## [671] 27992 30022 30795 31461 32153 32360 34009 35624 36418 37064
## [681] 37653 38191 39055 39400 39822 41133 41461 42096 43364 43430
## [691] 44062 44167 44561 44647 45465 46023 46657 47301 47567 49236
## [701] 50868 53520 54107 55592 56264 56702 56788 56895 57395 57654
## [711] 57820 57995 58461 58740 59041 59285 60071 61530 62222 64174
## [721] 65319 66733 67152 67699 68263 68874 69688 70372 74365 76698
## [731] 76854 79428 79686 79775 80873 81742 82334 82728 85459 86869
## [741] 86892 87725 88647 88834 89266 89449 90023 90405 90549 90602
## [751] 90835 91236 91363 91377 91973 91977 92277 92601 92957 93045
## [761] 93851 93959 95295 95334 95375 96564 96974 97182 97746 98980
## [771] 99518 99818 99916 100223 100475 100824 102525 102584 102646 103880
## [781] 104589 105243 105328 105547 105834 106267 106501 109644 110208 110619
## [791] 111079 111441 111475 112552 113533 113812 114489 115638 115805 116344
## [801] 116619 116741 116753 117075 119149 120016 122354 122869 123148 124710
## [811] 125278 125355 126053 126286 126638 126651 127370 128420 128906 130960
## [821] 131294 134352 134994 136014 136020 136461 136736 136934 137355 137407
## [831] 137834 138240 139562 141631 141836 141969 142612 142709 143233 143966
## [841] 144130 145276 146234 146637 146711 147749 148330 148755 149328 150929
## [851] 151216 151299 152078 152121 152235 153320 153403 153696 154933 156284
## [861] 156939 157132 157975 158271 158446 159345 159663 159888 160093 160475
## [871] 161587 162207 164792 166117 167459 167620 167655 168347 168807 169340
## [881] 169421 169775 170074 170682 172043 172369 172779 173104 174345 174521
## [891] 174610 175571 175867 175915 177293 177427 178344 178523 178790 179684
## [901] 180592 181744 182345 182667 182855 183289 183376 183377 183568 183819
## [911] 184281 184988 185190 185575 186184 186293 187157 187172 188452 189143
## [921] 189196 189255 189755 190721 190989 192499 193515 196515 196966 198014
## [931] 198966 199327 199413 199421 201084 201671 201937 201973 202079 202614
## [941] 202671 203019 203354 204934 205823 205848 207672 209176 211330 213834
## [951] 214102 214132 214374 214666 215885 215958 217877 218126 218910 219122
## [961] 219568 220840 221199 222983 223416 224350 224720 225106 225265 225737
## [971] 226386 229733 231517 231654 232033 232850 233280 233742 234066 234518
## [981] 236266 236428 236886 238254 238284 238972 240557 240607 241222 241329
## [991] 241399 242556 243670 244064 246425 247462 247790 248038 249548 249600
## [1001] 249942 250299 250919 252307 253271 253614 255055 255336 255485 255764
## [1011] 256515 259597 260324 260633 261174 262954 263231 263867 264810 264927
## [1021] 266272 267513 268328 268723 269600 269695 270107 270499 270804 270815
## [1031] 271887 272190 274651 274978 276017 276286 276743 277190 277395 277840
## [1041] 277847 277853 278939 279146 279322 279855 280319 282367 283756 284126
## [1051] 285841 287007 287782 288589 288715 288839 291125 291505 291558 292082
## [1061] 292283 292427 293092 293759 293971 294901 295581 296713 298015 298768
## [1071] 299946 299993 300119 300960 301445 301449 301571 301741 301758 302630
## [1081] 304913 305779 305793 306983 307064 307728 307730 308725 309389 309639
## [1091] 310020 310577 310830 310869 312710 313407 314501 314812 314921 315481
## [1101] 315862 317434 317698 317888 318538 321145 321259 322089 322137 323074
## [1111] 323093 323678 324657 325183 326431 326583 326686 326935 327037 327312
## [1121] 328374 328620 329392 331680 332294 334867 336628 337130 337355 337416
## [1131] 337608 337642 339205 340347 340508 342490 343097 344601 345054 346573
## [1141] 346691 347809 348789 349186 349441 349816 350272 350480 351184 351187
## [1151] 351782 352332 353739 353967 354309 354625 354817 357015 357782 358526
## [1161] 359741 360039 360317 360546 361022 363817 363908 364101 364936 364941
## [1171] 365068 365929 366810 367401 368012 370137 372384 372497 373015 373085
## [1181] 374851 375170 375427 375553 375679 375737 376876 376949 377038 377053
## [1191] 378418 379025 379767 379810 379963 381090 383363 384514 385145 385373
## [1201] 386187 388509 388966 389005 390094 391021 391198 391467 391852 392092
## [1211] 393036 393134 394110 395051 395798 395926 395960 396078 396999 397984
## [1221] 398514 399920 399963 400000 400581 400994 402445 402715 403685 404062
## [1231] 404080 404242 404322 455 587 1664 2007 2278 2317 3024
## [1241] 3079 3220 3717 4627 5423 7277 7392 7418 7822 8600
## [1251] 9212 9392 9735 10324 10421 10623 10817 10888 11060 13528
## [1261] 13557 13798 14007 14135 14529 14655 15105 15249 15422 15851
## [1271] 15958 16356 16875 17577 17629 18144 18831 18879 19848 19923
## [1281] 20020 20287 20321 20459 20535 21575 21587 22103 22344 22573
## [1291] 22745 22794 23066 23366 23431 23553 23629 23701 23811 24374
## [1301] 24710 24818 24890 24981 25375 25681 25884 26010 26446 26820
## [1311] 27300 27324 28134 28279 29037 29461 30231 30328 30553 30640
## [1321] 30711 30808 31356 31472 31828 32471 32977 34093 34277 34452
## [1331] 34500 34561 35069 35230 35363 36189 36724 37576 37847 38720
## [1341] 38722 38827 38969 39136 39501 40133 40136 40320 40971 41305
## [1351] 41338 41518 41752 41833 42741 42801 43186 43267 43360 43476
## [1361] 43617 43658 44204 44365 44414 44507 44642 44928 45976 46486
## [1371] 47015 47304 47979 48865 49017 49403 49439 49532 49889 50041
## [1381] 50309 50792 50843 51662 52058 52186 53076 53282 53378 53886
## [1391] 53964 54399 54547 54905 54999 55288 56059 56085 57190 58042
## [1401] 58090 58466 58821 59185 59503 59772 60830 61203 61487 61655
## [1411] 62003 62167 62561 62588 62699 62837 63240 63526 63617 63760
## [1421] 63977 64365 65324 65785 65946 66118 66694 66786 66913 67273
## [1431] 67672 67754 67773 68046 68143 68331 68438 68581 68746 68919
## [1441] 69421 69573 70356 71041 72018 72082 72762 73647 73665 73930
## [1451] 74172 74265 75502 75708 77312 78133 78407 78685 78700 78708
## [1461] 78713 79026 79230 79342 79535 80613 80930 81283 81442 81523
## [1471] 81734 81972 83555 83790 83964 84276 84317 84702 84953 85296
## [1481] 86054 86474 86859 86864 86941 87053 87142 87331 87349 87990
## [1491] 88245 88253 88390 88496 88679 89001 89843 90037 90243 90399
## [1501] 91314 91740 91819 92055 92352 92571 93196 93205 93808 94152
## [1511] 94363 94476 94669 95090 95153 95274 95838 95870 97311 97502
## [1521] 97826 97965 98099 98370 99279 99439 99494 99564 99659 99896
## [1531] 100386 100483 100578 101208 101531 101775 101907 101936 102621 102859
## [1541] 102884 103135 103819 104562 105254 105534 106406 106858 106872 106932
## [1551] 107113 107530 107686 107697 107813 107884 107933 108086 108148 108215
## [1561] 108478 108937 109335 109469 109492 109577 109646 109933 110187 110764
## [1571] 111632 111718 111770 112024 112279 112824 112949 113030 113206 113232
## [1581] 113433 114006 114693 115414 115515 115593 116360 116596 116910 117235
## [1591] 117441 118028 118806 118870 119215 119268 119315 119484 119582 119900
## [1601] 120354 120743 121147 121390 122014 122124 123197 123419 123586 123972
## [1611] 124056 124156 124800 124820 124851 125004 125043 125120 125517 125720
## [1621] 125867 125890 126564 126668 126897 127022 127052 127135 127138 127226
## [1631] 129240 129767 129948 130445 130482 130541 130935 131066 131105 131210
## [1641] 131287 131356 131537 131572 131789 132125 132411 132717 132780 132954
## [1651] 133277 133733 134063 134408 134713 134987 135253 135312 135486 135498
## [1661] 136133 136854 136870 137334 137773 138232 138485 138692 139396 139522
## [1671] 140001 140496 141129 141187 141286 141365 141905 142183 142225 142326
## [1681] 143038 143253 143536 143542 143636 143793 144132 144398 144961 145505
## [1691] 145974 146053 146084 146465 146498 146736 147584 148120 148170 148311
## [1701] 148317 148595 149045 150132 150332 150550 150667 150877 151122 151240
## [1711] 151345 151379 151496 151593 151765 151778 151927 152344 152537 153220
## [1721] 153241 153405 153884 154070 154555 154578 154603 154777 154805 155060
## [1731] 155143 155167 155334 156091 156702 156734 156817 157235 157814 157950
## [1741] 158850 158878 158945 159035 159598 159876 159900 160140 160164 160211
## [1751] 160758 161197 161306 161519 161536 161809 162042 162142 162689 163161
## [1761] 163773 164001 164478 164762 164980 165267 167265 167364 167929 168214
## [1771] 168231 168267 168813 169314 169521 169787 170451 170570 170702 171056
## [1781] 171421 172697 172751 173068 173178 173281 173324 173418 174073 174527
## [1791] 174873 175003 175096 175781 175851 175994 176022 176059 176430 176692
## [1801] 176994 177311 177382 178268 178272 178429 178654 179367 179734 179755
## [1811] 179833 180100 180391 180489 181233 181284 181288 181670 182003 182112
## [1821] 182608 182612 183007 183149 183561 184834 185165 185328 185607 185695
## [1831] 185757 185801 185871 186078 186448 187324 188192 188295 188604 189121
## [1841] 189465 189504 189966 190164 190234 190293 191050 191356 191403 191895
## [1851] 191911 191952 193130 194231 194235 195041 195252 195626 195737 195783
## [1861] 196573 196725 196753 196930 197036 197106 198009 198028 198569 199078
## [1871] 199229 199359 200611 200851 201029 201804 201874 201914 202753 203814
## [1881] 203825 204015 204023 204086 204431 205036 205045 205052 205248 205373
## [1891] 206113 206200 206358 206489 206490 206812 207392 207647 208601 208847
## [1901] 208942 209297 209637 209649 210819 211285 211733 211852 211925 212209
## [1911] 212860 212917 213252 213347 213402 213575 214151 214289 214445 214721
## [1921] 215255 216051 216601 216631 217192 217201 217446 217818 218208 218464
## [1931] 218667 218829 218955 219163 219537 219548 220028 220056 220080 221347
## [1941] 221431 222751 223080 223403 223902 224073 224286 224486 224618 225159
## [1951] 225264 225337 225536 226513 227251 228159 228603 228620 228750 228948
## [1961] 229750 229897 230298 230383 230709 231130 231352 231449 231826 232411
## [1971] 232638 232936 232957 233397 233550 233747 233761 233975 234152 234230
## [1981] 235009 235010 235082 235511 235519 236448 236850 237068 237070 237099
## [1991] 237167 237357 237469 237729 238260 238706 239718 239956 240034 240039
## [2001] 240837 240931 241398 241431 241665 241714 241784 241856 242022 242574
## [2011] 242648 242928 243280 243441 243811 244041 244438 244560 244603 245120
## [2021] 245452 245549 245828 246735 246984 247520 248311 248644 248730 249228
## [2031] 249237 249588 249952 250464 250661 252384 252449 252523 252723 253013
## [2041] 253502 253711 253773 254028 254151 254249 254293 254883 255383 255688
## [2051] 256166 256381 256555 256722 257088 257174 257203 257225 257228 257434
## [2061] 257802 257814 258048 258253 258322 258412 258442 258616 258850 259546
## [2071] 259768 259836 259875 260251 260493 260876 261194 261352 261363 261976
## [2081] 262200 262437 262824 262860 263203 263255 263539 264040 264366 264908
## [2091] 265043 265634 265651 265890 266565 266573 267017 267222 267231 267730
## [2101] 268061 268398 269009 269220 269345 269648 269719 269784 270078 270284
## [2111] 270424 270645 270951 271081 272251 272341 272408 272485 272519 272532
## [2121] 272664 272690 272905 272936 273113 273116 273490 273946 274732 274779
## [2131] 274837 275479 275987 276179 276448 277419 277945 277964 278480 278584
## [2141] 278902 279269 280458 280590 280879 281494 281696 281969 282394 282682
## [2151] 282777 283622 284222 284620 284750 284901 285056 285167 285242 285264
## [2161] 286371 286581 286646 286791 286827 287165 287188 287642 287688 287971
## [2171] 287980 288025 288029 288356 288481 288558 288813 288969 289479 289503
## [2181] 289745 290147 290995 292135 292251 292492 292858 293841 293864 294549
## [2191] 294971 295136 295351 295433 295659 295885 295917 295979 296127 296594
## [2201] 296615 296872 297197 297578 297804 297813 297822 298228 298377 298545
## [2211] 299325 299544 299716 299827 299845 300066 300102 300644 300657 300687
## [2221] 300816 301717 301919 302311 303009 303050 303343 303410 303803 304026
## [2231] 304131 304665 304668 304801 305226 305693 306023 306033 306305 306551
## [2241] 307776 308448 308633 308643 308694 308987 309288 309378 309603 309636
## [2251] 309753 309879 310154 310331 310403 310877 310893 311019 311025 311049
## [2261] 311225 312107 312139 312227 313331 313961 314068 314674 314801 315178
## [2271] 315341 315458 315716 316494 316562 316627 316733 317264 317331 317402
## [2281] 317772 318033 318157 318534 318796 319111 319288 319560 319857 319931
## [2291] 319970 320652 320995 321111 321191 321406 322674 322858 323674 324443
## [2301] 324606 324641 324668 324972 324989 325615 325702 325761 326175 326430
## [2311] 326524 326615 326972 327456 327768 327872 327955 328300 328538 328957
## [2321] 328997 329218 329507 329674 329693 329858 331072 331346 331355 331439
## [2331] 331720 331749 332634 332904 332991 333092 333475 334252 334384 334727
## [2341] 334937 335407 335460 335563 335889 336261 336461 336609 336948 337153
## [2351] 337406 337661 338140 338267 338317 338668 339069 339145 339763 341231
## [2361] 341343 341408 341456 341882 342205 342681 343001 343002 343463 343786
## [2371] 343849 344338 344368 344805 345378 345496 345542 345643 345715 345876
## [2381] 346531 346644 347006 348290 348313 348845 348937 349159 351207 351588
## [2391] 351769 351816 351887 352055 352062 352067 352240 352770 353158 353396
## [2401] 353416 353466 353781 353913 353976 354294 354635 355206 355235 355536
## [2411] 356591 356884 356989 357082 357297 358075 358262 358350 358542 358690
## [2421] 359121 359255 359396 359405 359611 360510 360737 360928 361612 361704
## [2431] 361725 361744 362109 362158 362190 362296 362524 362644 363077 363148
## [2441] 363458 364172 364254 364814 366133 366335 366342 366579 366636 367039
## [2451] 367433 367442 367520 367752 368319 368333 369262 369334 369586 369644
## [2461] 370038 370423 370566 371191 371433 371661 371908 372033 372042 372091
## [2471] 372311 372396 372420 372779 372844 373248 373414 373603 373693 373695
## [2481] 373732 373807 374312 374874 374908 375404 375464 376086 376428 377330
## [2491] 377486 378219 378299 378538 378654 378730 379215 380081 380413 380481
## [2501] 380509 381096 381644 382696 382732 382831 383343 383643 384095 384991
## [2511] 385766 386674 387337 387591 388904 388909 389793 390693 390807 391016
## [2521] 391064 391312 392147 392157 392427 392661 392741 392759 392792 392876
## [2531] 392882 393275 393320 393646 393828 394248 394411 394597 394734 395216
## [2541] 395422 395482 395598 397083 397296 398041 398133 398218 398220 398676
## [2551] 398744 399019 399104 399162 399394 400195 400521 401668 401992 402570
## [2561] 403197 403790 403888 404144 404314 404583 405398 405514 405539 96
## [2571] 452 948 1605 1998 2519 2831 2908 3977 4410 5323
## [2581] 5659 5739 5802 6102 6698 6714 6746 6898 6997 7294
## [2591] 8326 9480 9532 9694 10715 11431 11523 12741 13206 13310
## [2601] 13558 14183 14330 14561 14568 14966 15630 16602 16643 17085
## [2611] 18230 18969 19163 19995 21023 21141 21261 21729 21765 21784
## [2621] 22043 22089 22332 22948 23741 23966 24813 24948 25283 25613
## [2631] 25747 26419 26822 27388 27458 27782 27974 28323 28927 29009
## [2641] 29307 30232 30818 31380 31772 32162 32461 33211 33337 33805
## [2651] 34377 35336 35456 35818 36945 37495 38712 39021 39300 39315
## [2661] 39339 39634 39812 39834 40029 40711 40755 41439 41957 42073
## [2671] 42372 42896 42924 43046 43398 43462 43479 43482 43510 43972
## [2681] 44678 44830 45744 46124 46472 46535 47089 48147 48472 48765
## [2691] 48953 49190 49340 49410 50344 51166 52211 53150 53203 54141
## [2701] 54170 54500 54542 54608 54747 55371 55525 55562 55934 56397
## [2711] 56906 57142 57787 58200 58760 58844 58851 58865 59403 59650
## [2721] 59709 60865 61450 61455 62882 64350 64840 65199 65713 65821
## [2731] 65915 66062 66113 66121 66213 66563 66933 67726 68622 69766
## [2741] 70081 70440 71415 71496 71614 71616 72714 74282 75219 76060
## [2751] 76198 76251 76280 77125 77329 78328 78679 79412 80265 81008
## [2761] 81248 82966 83044 85018 85402 85708 88169 89638 89668 89986
## [2771] 90089 91183 91425 93284 93354 94238 94275 94348 94533 94649
## [2781] 94831 95029 95892 95938 96485 96678 97110 97246 97762 98363
## [2791] 98597 99453 100311 100946 101179 101297 101469 101664 102270 102326
## [2801] 102515 102674 102722 104015 104262 105506 105625 105667 106091 106271
## [2811] 106306 106423 107276 107351 107983 108418 108775 109057 109386 110121
## [2821] 110657 111136 111581 111598 111794 113360 113382 114073 114563 114623
## [2831] 114642 115025 115250 115698 116058 117085 117844 118144 118170 118247
## [2841] 118791 118930 119027 119262 119327 119417 119832 120066 120144 120548
## [2851] 120632 121687 123407 123474 123520 123530 124014 124177 124678 124943
## [2861] 125125 125261 125888 125944 127775 127962 128089 128172 128548 128729
## [2871] 128816 128859 128898 129955 130127 130150 130329 130439 130508 131045
## [2881] 131451 131804 132091 132286 132542 132786 132808 134579 134907 135565
## [2891] 135576 137384 138322 138667 139133 139640 139703 140106 140197 140317
## [2901] 140720 140950 141082 141202 142261 142572 142768 142804 143257 143525
## [2911] 143721 143768 144378 144556 144665 145496 146566 147048 147158 147877
## [2921] 149048 149128 149307 150275 150603 152354 152414 152734 153393 153394
## [2931] 153438 153510 155111 155364 155547 156915 157147 157862 158848 159454
## [2941] 160095 160252 160497 160717 160839 161639 162063 162894 162995 163033
## [2951] 163232 163276 163637 164080 164192 164535 165299 166489 166731 167519
## [2961] 168044 168147 168829 169177 169893 170033 170133 170270 170616 171139
## [2971] 171342 171343 171826 172254 173296 173356 173599 173785 174082 174476
## [2981] 175204 175533 175569 176785 178040 178302 178370 178391 178879 179060
## [2991] 179748 179817 179923 179992 180418 181055 181580 181767 183304 184394
## [3001] 184504 186118 186549 186591 186602 187923 187983 188005 188476 189687
## [3011] 189703 190209 190300 192929 193055 193304 193332 193342 194110 194620
## [3021] 195717 196938 197071 197370 198383 200066 201695 202143 202175 202391
## [3031] 202948 203012 203570 203743 203881 204172 204468 205884 206060 206419
## [3041] 206827 207047 207574 207867 208054 209081 210744 210902 211848 212136
## [3051] 212577 213336 213773 213837 214048 214133 214794 215247 215786 216532
## [3061] 216715 217958 218062 218213 218486 219476 219772 219870 220043 220046
## [3071] 220491 220676 221748 221824 222467 224095 225309 225610 225710 225937
## [3081] 226362 226477 226556 226998 227114 227583 227960 228252 228549 228686
## [3091] 228732 229133 229254 230620 230977 231824 233245 233498 233681 233711
## [3101] 233952 234003 234351 235099 235641 235910 236046 236443 236495 236591
## [3111] 236887 237325 237457 237633 237816 238622 239565 240019 240185 240998
## [3121] 241127 241428 242213 243060 243143 243293 244638 245292 245656 245844
## [3131] 245977 248299 248524 248937 249737 249772 249931 251107 252198 252209
## [3141] 252649 254762 254976 255286 255672 256401 256685 256772 257245 257611
## [3151] 259054 259343 261373 262233 262323 262535 262607 263204 263425 263530
## [3161] 263620 263643 263776 264159 265093 265201 265284 266218 266286 267424
## [3171] 268546 268595 269010 269016 269392 269814 270147 270278 271435 272317
## [3181] 272388 272703 273081 273334 273732 273828 273897 274425 274615 274753
## [3191] 275413 275473 276279 276322 276367 276951 276987 277152 278534 279150
## [3201] 279672 279717 280245 280464 281025 281106 281182 281265 281281 281786
## [3211] 281888 282099 282277 282281 284344 285649 285791 286331 286688 287038
## [3221] 287506 288155 288248 288633 288759 288948 289494 289623 290383 290579
## [3231] 290842 293643 294375 295453 295454 295497 295656 295686 295721 295998
## [3241] 296981 298678 300246 300503 300504 301000 301913 302131 302238 302578
## [3251] 303573 304763 305663 306578 306854 306971 307610 310758 311136 311410
## [3261] 311578 312225 312237 312764 313085 314110 314172 314578 315041 315122
## [3271] 315331 316656 316728 316926 317165 317250 318525 319211 319225 320442
## [3281] 321123 321800 322067 322755 323100 323438 323684 323896 325584 326341
## [3291] 326925 327130 327470 328020 328233 328968 329128 329443 329511 329720
## [3301] 330287 330362 330509 330585 331073 331893 331989 332258 332668 332888
## [3311] 333091 334171 334624 335455 335579 335673 335699 335957 336030 336389
## [3321] 336438 337385 338456 339169 339748 339838 340183 340357 340710 341799
## [3331] 343227 344625 345044 345770 346369 347172 347493 347649 348471 348681
## [3341] 349198 350302 350584 351130 351225 353045 353893 354009 354872 354928
## [3351] 354966 355560 356223 357019 357136 357841 359223 359995 360162 361098
## [3361] 361715 362321 362522 362527 362556 362835 363675 364152 364327 365734
## [3371] 365900 366140 366225 366289 367662 367737 368156 369233 369532 369663
## [3381] 370509 371311 371842 371986 372557 372863 373822 374753 375086 375352
## [3391] 375419 376129 376181 376198 376375 377062 377941 378139 378152 378289
## [3401] 378327 378436 379059 379913 380165 381393 381424 381477 381883 382122
## [3411] 382982 383044 383059 383209 383269 384206 384600 385034 386004 386764
## [3421] 387010 387722 388672 389739 389786 390008 390598 391290 391424 391872
## [3431] 392636 392814 392864 393286 394713 394716 394843 396019 397058 397628
## [3441] 397970 399216 399375 399612 401460 402544 402549 403834 404369 404900
## [3451] 405348 405475 405716
match(sub_cistrans_GoDMC_hvCpG_matched_control$controlCpG_name, cpg_names)
## [1] 344658 182750 398917 293604 250517 389028 320321 361346 278675 79767
## [11] 297360 20162 213019 28197 18957 355647 205134 51869 240454 163411
## [21] 139238 255410 210252 153545 129311 253354 204799 341489 150143 171247
## [31] 64826 308826 112906 119534 224191 316816 152619 405092 171396 231271
## [41] 355301 10499 319793 361702 372847 355389 119559 217878 38334 215281
## [51] 37565 332759 130027 44323 305624 322247 188489 206251 66157 225744
## [61] 276414 323179 155969 78869 381722 354251 179738 95822 12968 242724
## [71] 210861 59015 326099 266528 198514 236280 62355 164550 270759 28383
## [81] 162353 25888 56635 190661 91778 37849 124291 302759 193166 131965
## [91] 242476 238634 103454 52898 140345 86322 362635 403206 283927 196724
## [101] 390594 272364 224530 142960 187232 102510 111968 273870 270559 266240
## [111] 143657 54236 339136 158267 30176 405531 210207 383211 145098 82235
## [121] 39541 360594 79602 139637 135957 196778 342448 223056 101168 374824
## [131] 39245 205960 312703 290264 144169 394562 202013 357295 8565 133524
## [141] 391589 301318 77075 266517 360856 297382 389037 256239 379427 12993
## [151] 198871 69139 343335 123444 268052 81574 9334 21 300369 372471
## [161] 71200 167982 328586 59677 349948 379155 378828 176975 184511 263079
## [171] 156415 8903 86956 118211 196037 74284 209728 307900 37244 175669
## [181] 89597 62676 101833 292163 374645 289260 167522 64375 156786 177712
## [191] 377033 169584 382713 334161 71238 116008 33656 40916 9624 392015
## [201] 44833 252486 39066 239606 156118 399966 78531 200276 1631 55311
## [211] 127936 81509 278171 10767 318667 96679 199669 164779 351051 287063
## [221] 142139 340134 231008 310644 255602 144496 278707 357860 296332 174829
## [231] 268804 346802 83887 145670 299549 375166 290098 139185 26490 400222
## [241] 60654 378768 59880 105148 288717 335927 129778 395765 21611 80
## [251] 312473 17107 86810 395544 344231 4629 195331 400484 68568 141590
## [261] 136102 357246 343365 215178 188908 340802 245503 78625 93 97795
## [271] 38295 12448 48488 75216 279467 67965 90688 124808 109700 71164
## [281] 343951 273866 205173 22168 29465 325200 359715 50891 65235 386050
## [291] 79361 209992 151235 382820 163294 203927 398463 295297 366249 299635
## [301] 112729 296451 367888 346820 24220 171299 315804 244847 234332 20867
## [311] 204157 297626 131460 68844 347487 62664 204577 1462 372918 19269
## [321] 3234 261513 344551 294342 296234 403949 106422 193189 227096 299277
## [331] 282406 267134 171685 109784 374393 217122 110076 121867 376290 206737
## [341] 151906 314896 397545 5356 136521 261555 252519 156412 302074 390179
## [351] 145158 331949 153691 170539 154095 92232 216181 340418 221295 89733
## [361] 59404 191500 166903 79923 369601 403097 282110 347634 107901 400062
## [371] 291902 375713 32047 398526 352102 252154 75207 184244 217368 22962
## [381] 401449 307993 175110 381067 281796 347929 323771 3528 382236 276781
## [391] 261788 152560 178724 57069 143450 240705 386732 227770 333685 211499
## [401] 56216 119230 234134 250337 222794 180202 218842 123955 31458 371432
## [411] 165747 176348 323486 111488 299092 86806 10571 68641 212116 372094
## [421] 24212 84646 395531 310179 175376 181850 169297 332767 288336 197938
## [431] 270999 118448 263829 299045 50625 353494 324521 64882 353778 237207
## [441] 36027 208009 31293 134491 86933 261463 271263 118060 390761 341884
## [451] 213206 142779 48158 222732 183122 148214 139096 87476 33889 256256
## [461] 268687 111397 52711 167125 51330 258579 374870 345819 354126 359361
## [471] 258702 264615 263688 247446 21567 193124 386283 132846 224360 16264
## [481] 133994 213665 212546 24422 300182 204292 390849 374201 320811 98165
## [491] 10503 216199 94813 321920 102678 293116 185184 201055 75464 208530
## [501] 97487 45237 191200 138041 342061 114395 184856 288778 111177 225221
## [511] 157284 191991 293341 308112 51532 167974 331879 279547 305543 340486
## [521] 145007 226829 260517 152990 48215 97326 315994 295782 342236 72977
## [531] 44359 389640 311301 131650 307688 105600 167949 380540 303083 402317
## [541] 284191 264001 346574 64635 102026 287094 146010 365194 74182 173485
## [551] 31904 370379 148298 129921 111421 172288 350675 332934 38243 258742
## [561] 40012 79854 369366 390506 369615 384436 239800 81267 54738 48972
## [571] 113262 133019 296260 349951 239822 350517 96026 112770 101042 11214
## [581] 342136 331195 16254 225540 181584 301397 233866 253554 222149 331109
## [591] 227801 345393 306104 208766 317476 32151 48013 288792 362797 328843
## [601] 174446 272928 212605 51244 269612 163574 404741 378564 375557 262230
## [611] 298840 293364 375983 324340 72900 214141 97053 285143 273010 167036
## [621] 79652 166504 69898 155820 53729 332222 82160 16049 171862 22525
## [631] 214047 141837 192101 181637 137858 101007 3676 338481 55358 287464
## [641] 26532 380893 379982 56103 205956 261290 301621 175036 157738 259517
## [651] 225743 166265 399166 159152 23586 357778 45446 297095 122198 42861
## [661] 200770 60247 28728 341243 254185 33437 170157 362275 272706 76548
## [671] 157004 127558 169748 249834 247252 363309 283867 272940 215586 234226
## [681] 233371 108713 398054 114625 289254 298707 238313 320499 405000 206585
## [691] 183822 311448 126785 185129 379727 69933 381793 29226 33310 228500
## [701] 166175 274465 193596 319718 391597 399330 329503 346132 60513 394956
## [711] 141673 123807 262356 333146 214396 43892 228781 350175 252016 24300
## [721] 65352 8073 206067 211633 239649 296348 253549 202870 321499 213511
## [731] 193830 197275 79173 163910 52076 284766 89404 69137 142331 132342
## [741] 217552 268988 107543 125985 165557 246188 172297 268697 158805 168142
## [751] 289587 99763 246570 285152 382805 333281 174363 15686 31134 134480
## [761] 391860 396884 2796 306466 224862 55657 72494 170035 372519 136138
## [771] 37040 301647 131106 157237 2395 287259 212669 337739 383630 187828
## [781] 168523 217296 101723 205788 2714 42650 185904 152381 85345 365345
## [791] 286105 294469 192530 175026 168195 373075 343822 190414 22116 121547
## [801] 143310 263549 146681 292839 262037 33690 266447 159873 10796 284491
## [811] 274371 287840 130211 332536 40393 378882 384523 328209 333956 57899
## [821] 360539 234398 388985 22291 30611 108113 337456 228311 125535 157744
## [831] 156484 34964 38582 93513 104229 387259 8969 375416 343164 7995
## [841] 9892 374690 307739 297630 376350 196512 281293 131508 95966 134537
## [851] 253747 365964 236081 331417 333762 252022 310491 137646 20875 252008
## [861] 227595 142675 127019 79259 116722 83415 372445 56888 101319 81891
## [871] 249957 311762 218828 210267 170104 104685 54120 111000 41237 31277
## [881] 266120 82367 278130 259411 86043 171951 263191 7140 85317 91532
## [891] 173992 69179 365462 181398 197030 190700 240601 405854 110567 12395
## [901] 92969 248476 403216 196363 164511 275912 24425 55157 138119 230759
## [911] 108311 380422 215874 104490 31117 401651 303345 293771 117707 373765
## [921] 280225 197087 288785 106393 356572 117427 358796 288725 31199 219329
## [931] 102882 190878 11407 50049 197798 42821 285676 106109 338500 265655
## [941] 218802 309686 246865 9285 255029 319338 185809 66387 300180 153994
## [951] 60204 100755 252050 258077 88839 299080 262529 173450 268409 186149
## [961] 285735 258925 163380 308135 182557 189102 325444 249888 174968 66674
## [971] 137762 292571 57070 182741 60329 404246 371355 106272 169818 286516
## [981] 12691 300927 385543 146582 362884 164360 21310 289911 230141 58122
## [991] 140784 128051 251162 72726 351414 333437 106195 270956 200765 1936
## [1001] 253060 327422 76463 95301 142049 43831 36951 136839 398962 72816
## [1011] 375155 294123 244126 310565 242717 139310 67866 52529 114661 87832
## [1021] 89773 104477 126863 27969 388005 75875 147974 210952 136478 87687
## [1031] 82428 288848 20385 353511 68508 88633 358517 404572 351270 88803
## [1041] 92876 145149 402055 114924 37563 36349 244371 321463 228380 200102
## [1051] 265719 60749 98690 142911 369371 29475 312077 170881 218473 48899
## [1061] 198910 208068 155271 81423 136179 186619 176301 88484 358694 78450
## [1071] 403635 366301 274153 239331 57429 397566 318906 215728 131345 274782
## [1081] 179272 198016 259868 50641 295575 217435 187592 361844 119656 180642
## [1091] 219517 140626 278099 75417 7623 166330 339393 279007 54190 137979
## [1101] 115907 773 147382 403438 173773 367279 255802 238259 227946 351236
## [1111] 79529 91732 373167 311440 188103 232037 109922 159511 31375 403264
## [1121] 286258 251319 222173 33541 14464 190829 272828 244322 133743 138311
## [1131] 372843 309938 132526 286356 303332 276628 63419 5354 161450 308443
## [1141] 402791 163722 93040 76729 195018 178898 193822 182595 130936 179615
## [1151] 216903 91580 123440 92718 93634 240085 7484 117900 393872 339351
## [1161] 173083 365871 129341 214916 63306 48452 196031 321502 247220 208789
## [1171] 135516 150980 215802 298901 127768 127096 26524 168757 128680 363998
## [1181] 138473 143923 110483 367741 293543 386298 165417 185457 19242 55663
## [1191] 145581 357823 296900 308359 36051 278209 151820 17062 212505 79462
## [1201] 155302 4107 380975 103564 201014 198532 110012 15697 354180 125583
## [1211] 23861 282122 78118 307982 272267 83211 221708 170374 354337 216221
## [1221] 209564 114822 189924 244872 238506 196936 387537 255298 57526 305148
## [1231] 304510 392619 279354 253723 404817 174762 97059 344713 348601 355900
## [1241] 259866 254075 133540 133270 88160 138277 332830 256160 15843 35616
## [1251] 39057 287074 289946 151434 327091 118921 92397 232053 191770 311392
## [1261] 33064 330949 1503 261241 42470 200676 187620 285193 3371 162323
## [1271] 93881 382759 211478 34437 395282 113975 267228 30037 297524 527
## [1281] 57495 177782 15931 177412 325156 239896 222676 162076 95625 154902
## [1291] 335116 156180 303149 25880 207321 135543 366274 174076 272333 17323
## [1301] 141568 219685 240764 261066 92332 245357 345599 254659 309778 241730
## [1311] 363306 249832 165536 313466 245851 391029 45147 106502 354542 111497
## [1321] 55828 31062 324558 265659 6798 307110 184653 6598 106761 18797
## [1331] 173348 5883 366987 348680 159366 293980 351680 14406 357485 334205
## [1341] 203088 173441 77353 86832 183574 368429 14270 113373 333657 3938
## [1351] 275199 227206 241054 335353 193543 242483 246433 323704 22254 34316
## [1361] 158064 244857 345462 118821 288513 94014 111500 239367 118998 97460
## [1371] 20453 181855 250944 130378 18271 25116 290324 86035 43011 303514
## [1381] 303632 334001 287247 113888 180730 164042 224385 298041 358058 213916
## [1391] 360135 265182 231890 172097 11358 211719 304266 136858 60129 224016
## [1401] 90798 335629 228987 142409 201473 176799 369759 225294 318642 238234
## [1411] 24529 100853 377025 133924 74575 79153 197968 8202 267665 36562
## [1421] 224257 76535 157602 340253 24237 36576 330612 27448 54604 218656
## [1431] 378812 29044 361365 116215 347122 129929 348058 328073 104852 342250
## [1441] 222172 216119 126030 122160 218500 40983 9440 118750 2397 278180
## [1451] 171550 359604 299542 267140 26943 330776 25697 123096 320875 232260
## [1461] 55044 401364 380304 181274 220934 26353 27277 392625 111948 117145
## [1471] 77665 209043 11462 304769 343695 244474 355552 168412 262106 52018
## [1481] 87487 224435 67845 275216 261170 280073 296483 181291 269628 326777
## [1491] 90107 222806 21239 116284 326687 399466 291193 249236 123078 238732
## [1501] 99122 393648 158722 161125 280804 345707 63742 240493 83060 306258
## [1511] 11931 4920 265206 371541 151074 218307 310596 72965 348110 26986
## [1521] 174443 9495 206548 403326 82109 359426 53134 164658 356542 209262
## [1531] 317583 256315 207602 263755 240439 275674 346077 304522 234533 291544
## [1541] 337350 67983 120668 185272 65733 390148 5637 177451 382200 315840
## [1551] 345577 156747 203643 15299 349430 371990 16412 260586 9364 237261
## [1561] 251568 128719 36821 61942 23949 136918 27033 299789 338307 369208
## [1571] 244323 207390 189639 400053 1134 272882 311743 191415 152164 150438
## [1581] 28716 169378 219694 106700 340044 359962 87480 229858 125299 216158
## [1591] 34909 289530 99919 405813 402144 299314 4104 229508 302136 65513
## [1601] 92172 281982 48410 122207 380724 218340 160823 260822 166614 367119
## [1611] 240304 329907 145937 139557 37532 383667 307215 125087 128004 404790
## [1621] 180587 218787 2583 250115 106783 83154 169894 358608 341316 342823
## [1631] 244506 380024 277078 60385 106441 296833 146101 190466 277378 129830
## [1641] 216342 249356 125001 340088 252304 123177 225841 143874 371367 138090
## [1651] 302373 126656 159983 9561 121776 213126 325106 10387 101542 118105
## [1661] 186915 3494 97040 195578 300574 130551 246395 263475 18348 151776
## [1671] 284801 75237 390597 86056 56710 348631 276929 236267 139899 78127
## [1681] 32309 83871 392000 150621 304693 277004 277557 2846 230437 402635
## [1691] 289382 240094 116912 328189 185262 146956 321808 4209 19653 121690
## [1701] 113997 134252 175739 97895 100091 27321 103372 88729 207835 396125
## [1711] 119629 111403 81050 98384 1757 371252 37667 238510 100608 16569
## [1721] 300431 307271 274951 216531 328882 16562 172155 213638 13816 111123
## [1731] 129011 287772 265846 194709 187946 396980 136452 183277 361035 30762
## [1741] 210113 91116 56011 149226 170694 165465 140934 337618 199186 71805
## [1751] 35023 317917 229633 185605 265931 364647 88039 44454 130235 225656
## [1761] 164251 3697 389571 378938 243985 403111 291522 25840 336943 205758
## [1771] 58226 25042 400358 133981 27940 244121 388511 375725 342102 77347
## [1781] 133783 126025 193537 203006 148379 185961 164653 93424 38548 261519
## [1791] 24075 162640 13045 173695 38329 230192 117392 350401 237048 327999
## [1801] 17413 229017 392754 10751 13743 60146 396245 128850 33626 344790
## [1811] 121227 12569 48449 179924 291435 51702 232620 155684 33004 127553
## [1821] 358906 186615 252555 313797 5785 367694 117571 384414 197183 299797
## [1831] 65049 204149 327084 364110 346826 21410 178301 119550 65507 74120
## [1841] 78178 226531 245931 134856 16823 233113 357940 142226 394250 355240
## [1851] 166941 64747 33483 265464 110595 349774 214818 207442 65928 372353
## [1861] 116810 100423 146862 284638 176571 305696 382680 404685 55744 268364
## [1871] 403960 11375 98429 298286 105887 383565 314822 232684 272239 312602
## [1881] 334087 237842 240614 118063 246544 340237 107648 399509 387659 72586
## [1891] 187300 295980 113885 349947 236524 256540 138291 227912 212321 229855
## [1901] 203634 4748 155561 400523 353208 176637 171137 128173 143736 164993
## [1911] 146676 281301 329745 247569 286451 229056 217582 80993 231464 77670
## [1921] 341287 151635 199882 291624 259933 304295 82808 248184 150385 62789
## [1931] 70428 319222 394269 343576 358416 40087 225857 249964 332271 225876
## [1941] 76238 211263 154402 150609 42425 148695 147779 267333 97207 307710
## [1951] 255473 70342 118224 302738 300043 296086 267101 67440 118580 364336
## [1961] 295964 143447 399337 239209 215759 388952 359004 223487 396875 395476
## [1971] 119113 237675 176068 246992 501 55280 382528 127352 312097 32409
## [1981] 391931 355346 394526 258573 178642 194840 237628 39786 272714 271910
## [1991] 178643 258408 124929 186588 334442 114968 45387 19777 388508 101669
## [2001] 202887 324915 302934 340020 143311 119519 333588 194309 343533 174049
## [2011] 90393 101154 229136 401 301170 190432 230393 238569 59903 327593
## [2021] 166551 316035 42658 35528 112875 387853 158369 78829 118647 27494
## [2031] 186495 399100 39809 134977 221336 349923 298977 338252 376264 271048
## [2041] 58646 196133 93431 240109 225880 138585 222225 190885 239123 350299
## [2051] 79908 260847 39206 310248 241767 262301 394214 97693 106800 213777
## [2061] 85926 87680 79479 48012 296036 163484 354010 274809 293660 42373
## [2071] 131064 11971 208330 224389 47722 288808 159050 225230 340109 367107
## [2081] 230935 230074 53187 318537 265675 112701 89616 238090 40085 8407
## [2091] 176607 46783 187980 320480 130565 91040 326036 196289 11534 173988
## [2101] 285674 24665 84376 224506 224558 276595 96823 95716 333812 150586
## [2111] 185254 181313 56652 103338 194899 98618 199769 1924 383631 152881
## [2121] 80701 209650 163128 8789 60273 405044 338563 149254 335224 366923
## [2131] 244461 267218 118205 45294 199021 334815 373489 29762 243591 244235
## [2141] 39036 356621 259011 239178 248488 314365 150568 90892 29512 402520
## [2151] 330761 382149 3161 236718 85541 59525 323840 239164 363515 188508
## [2161] 396713 374579 5836 252156 57029 304900 117970 130585 345442 196336
## [2171] 116954 276682 156543 113395 277433 273875 34655 314652 371386 21839
## [2181] 208129 296901 81520 10846 21517 374838 100569 300493 121816 402898
## [2191] 129236 346824 376725 345753 222257 155000 380345 290964 388460 85512
## [2201] 308211 377893 396971 356959 397043 50901 304225 11932 274410 263269
## [2211] 375151 22174 316246 38459 339710 382223 304557 178178 377848 176491
## [2221] 152140 208931 7344 128478 231741 20715 36499 109855 55725 42360
## [2231] 190000 65356 37232 348521 95024 225574 382568 134503 127428 109534
## [2241] 205106 252552 279902 257197 349956 186865 72065 274572 104445 193335
## [2251] 405826 212375 387868 272220 293559 270461 279062 242458 178064 134385
## [2261] 350706 241358 83558 325181 167176 143093 297646 114660 297393 122145
## [2271] 244401 193882 220703 252691 367023 307708 150885 104768 315538 385632
## [2281] 181992 231124 3172 45301 373528 218068 165903 7769 184132 323854
## [2291] 17809 94265 207479 128288 371467 349 267483 154157 148618 43001
## [2301] 142573 170622 126062 70376 128886 99978 113744 29045 133715 73580
## [2311] 270186 265034 337495 51066 156149 381428 127761 144014 388739 359519
## [2321] 134327 286114 369842 357107 253418 203452 389094 213980 144211 228585
## [2331] 394221 161700 52946 396151 137871 266925 190553 321280 200209 124536
## [2341] 245488 101647 177699 306583 77898 151602 94865 114948 121389 57383
## [2351] 57847 65593 360086 226603 329213 366381 200885 32335 295562 224565
## [2361] 309501 95094 59537 391017 30633 156455 340388 366316 285929 137481
## [2371] 117221 17643 9445 104301 302562 13967 69561 98790 381789 102897
## [2381] 315488 23055 274408 365274 263369 348697 71492 391987 124015 172017
## [2391] 347894 304836 118907 233137 3073 10322 296829 47987 269328 257729
## [2401] 131771 119721 48043 331884 14222 302275 378544 366392 247060 232309
## [2411] 215003 26218 205633 204950 198372 27631 79381 348018 168227 322770
## [2421] 47403 213564 28692 323332 97883 85792 126880 312627 334898 200833
## [2431] 160301 305260 145318 142447 38113 244626 183040 374717 161451 156416
## [2441] 193010 42030 197519 49464 251598 48888 285570 322727 46095 301002
## [2451] 163249 132276 160355 48737 397063 16610 118615 140913 358205 114319
## [2461] 333606 73324 402725 399774 212661 392570 296556 95578 378863 219378
## [2471] 385278 289936 199258 197203 140935 47197 399858 336098 57315 376701
## [2481] 46289 281243 372514 99137 67921 847 168118 325148 368570 29124
## [2491] 72946 164814 396096 72281 71827 58611 331282 386265 271748 48633
## [2501] 272652 87193 269729 96684 287265 46510 368072 227254 96150 378769
## [2511] 59929 214321 357672 17958 22241 365184 196038 196979 278513 197570
## [2521] 53149 302773 241239 113636 18832 116438 150012 140766 59316 59043
## [2531] 357725 181769 341423 284043 370766 166363 371991 231607 183899 74961
## [2541] 50511 256604 323169 263396 237981 48762 357501 25300 173009 384550
## [2551] 107119 251793 127221 186955 87961 67628 248710 89592 373164 231578
## [2561] 188279 167780 358430 181635 81577 329963 372409 46260 382294 363531
## [2571] 86616 339946 101396 163874 30767 339560 161715 21026 393639 177889
## [2581] 133292 139659 138357 332516 360829 347360 47606 253918 214031 117109
## [2591] 69741 41632 91647 139253 202432 73110 103190 379605 387782 363378
## [2601] 271928 131945 178144 309989 146199 217566 273920 28116 172389 35373
## [2611] 122181 185992 71706 255033 114445 92951 161467 164892 50963 244178
## [2621] 23559 180086 49743 270129 56208 388136 392051 172470 19640 94416
## [2631] 184243 9401 367397 381940 116276 271784 15404 1268 387518 363312
## [2641] 255969 35520 313788 5767 211803 283292 331019 16453 226629 242219
## [2651] 32394 308721 210039 204408 260017 300663 169761 282825 173034 23936
## [2661] 392397 128070 351435 65045 397424 363104 391485 280195 373905 35900
## [2671] 10953 381398 297142 364078 125405 40227 40007 32788 289864 67612
## [2681] 312762 337288 118903 137616 230222 176323 171375 202484 337594 383507
## [2691] 169505 12027 301028 381859 104705 95087 335 3512 297125 74599
## [2701] 312109 162883 96048 403849 221366 400074 317022 66661 35838 126629
## [2711] 9331 387915 271643 60081 118865 287866 114234 209777 258973 293600
## [2721] 249598 235455 205416 59384 48357 362569 359286 403908 306396 201598
## [2731] 147129 335577 27129 120283 120006 7137 180454 171534 29252 295054
## [2741] 27174 96460 308067 359230 118085 87824 38668 244618 381244 191309
## [2751] 231476 102915 7542 290180 169989 253688 303072 208805 131575 168567
## [2761] 297754 176355 123782 31637 272669 348255 80189 208928 11679 62514
## [2771] 225136 304272 144816 305062 13491 254442 305306 60211 261810 163005
## [2781] 120260 391105 384546 211767 88593 152928 314309 262296 352255 313648
## [2791] 227423 38149 344631 143340 248223 122367 390111 125768 347702 149738
## [2801] 394007 185748 122043 64993 130765 64586 245397 69392 224509 308486
## [2811] 159486 78628 23360 369568 161130 167206 20597 116021 15264 158828
## [2821] 196209 262631 99181 66515 357581 295590 249047 137901 195738 65144
## [2831] 314560 237808 71033 309377 123750 197337 219171 312141 61370 307042
## [2841] 220858 353882 74000 259283 386207 33462 242348 340805 266909 73399
## [2851] 226855 97684 284778 118476 107495 226467 48041 315250 218449 183140
## [2861] 88047 65680 339520 262389 31876 290043 287434 380525 373309 192479
## [2871] 356814 301344 30316 405393 405334 151016 316112 260132 174343 118204
## [2881] 113211 265972 224776 81307 80859 245738 76356 399531 276867 373698
## [2891] 338107 5686 312423 390323 15810 322005 29146 304170 46841 382427
## [2901] 198048 315283 195417 123619 189721 321050 260194 34752 186046 47264
## [2911] 154562 115397 69522 196152 26946 310751 7694 314776 79251 32592
## [2921] 291876 154891 47017 381460 9516 75134 39690 304602 383920 281473
## [2931] 320628 62903 279850 63372 3598 299068 99926 28287 143692 250959
## [2941] 24997 346344 209039 179304 146082 85192 104153 40849 79977 73202
## [2951] 32291 202777 135412 349414 212293 171635 147217 296209 374015 255421
## [2961] 328304 206480 83750 317830 137079 239529 178535 7840 107033 131495
## [2971] 257830 375133 191395 296253 343354 369435 149808 4702 54633 70578
## [2981] 158755 157633 189917 136966 385394 100838 141962 37485 358581 39553
## [2991] 34493 84417 311569 130137 225761 74652 48010 34547 22296 362458
## [3001] 306973 235128 320293 288284 191382 374748 188433 137819 165554 385133
## [3011] 388039 215140 190337 236312 338153 44570 220517 179371 240571 308871
## [3021] 47845 61560 275383 75234 172397 85110 306173 42860 391879 15614
## [3031] 129494 347274 351409 29562 293822 64166 310875 114500 311347 372851
## [3041] 1737 80318 231631 77535 141116 70872 86917 372626 358672 219112
## [3051] 257117 43253 285016 311031 171244 11099 32869 236332 289963 46368
## [3061] 30537 221161 308449 399720 38128 337939 278083 214788 58655 116151
## [3071] 379687 309347 162878 264166 336295 173052 316174 134403 35806 275624
## [3081] 187977 84577 70019 5627 6779 376952 130694 308870 292851 336454
## [3091] 49801 184094 348161 190914 44739 95077 95936 53252 169126 252769
## [3101] 366822 71393 49636 273210 133754 236194 101107 336038 398999 387745
## [3111] 42640 97192 365611 137870 348884 203268 354451 278044 285043 354038
## [3121] 22426 103322 200653 269225 155163 256526 293784 245748 387671 204557
## [3131] 260345 240208 236613 138247 282133 107466 124753 275919 256599 121927
## [3141] 225866 131793 304530 223660 19648 326386 327323 258089 166858 221433
## [3151] 113418 354508 81417 335783 59841 23253 33978 176623 171661 309675
## [3161] 220598 393767 265945 405617 214364 387557 85642 90226 116927 215317
## [3171] 240182 390375 53680 125979 231997 204797 30063 282963 128071 301151
## [3181] 127020 216189 232753 39556 39548 260845 121782 146106 358641 262799
## [3191] 295963 153456 241260 345709 324421 360483 308204 311982 258651 259528
## [3201] 253817 316317 33206 208679 21503 262340 370091 317845 70222 70574
## [3211] 194909 322437 184032 315186 244713 146151 163238 351701 359152 73075
## [3221] 252763 182549 11779 204939 94762 17829 184536 281077 156148 404160
## [3231] 113187 384367 7223 67441 342942 129590 18799 325201 180307 312157
## [3241] 146262 135676 109407 41738 341575 58778 119632 87386 320200 154523
## [3251] 7620 313454 62965 40051 390462 377512 227201 329754 185615 224343
## [3261] 47835 39192 282391 220671 62981 104157 172730 329306 281056 108488
## [3271] 163453 127315 231097 126936 39194 9360 123339 180128 207994 197964
## [3281] 161562 298453 6527 215844 37105 342124 189890 293377 139682 11795
## [3291] 265088 358597 62170 15046 22179 25005 290034 124712 198987 180043
## [3301] 65597 327073 6561 94612 15454 75533 375706 342221 168826 284141
## [3311] 146889 380935 327699 196156 395572 208203 361136 76482 312755 274631
## [3321] 234558 310655 68260 110164 392908 370047 390608 369276 330686 258914
## [3331] 320595 322567 78418 77954 194307 12425 233377 259917 197141 282471
## [3341] 268838 126032 188906 138600 73190 129666 20670 187090 118911 372937
## [3351] 231557 92091 243789 183960 114910 187260 304866 86451 228431 43224
## [3361] 42929 329962 297158 337081 288172 68757 194889 350722 191065 193561
## [3371] 259462 155182 137746 52666 385383 110211 328582 190479 18477 352693
## [3381] 147120 144801 164481 11717 208652 219035 198925 124120 38465 259679
## [3391] 93778 300209 131085 304301 53034 222953 69733 15267 403589 71766
## [3401] 394365 404477 266053 262284 314787 43163 308559 118155 299500 54624
## [3411] 282191 212430 241723 77473 285828 220427 312767 33989 109152 59779
## [3421] 256448 349100 20280 91934 65458 141336 374904 184074 67151 179318
## [3431] 300462 73176 232672 216393 28300 114841 84963 281348 282600 187448
## [3441] 46444 329083 405550 381655 391266 128857 314420 305396 363119 48422
## [3451] 268897 248982 161879
pos2check <- c(match(sub_cistrans_GoDMC_hvCpG_matched_control$hvCpG_name, cpg_names),
match(sub_cistrans_GoDMC_hvCpG_matched_control$controlCpG_name, cpg_names))
## Made with "Brent" and new method
load("/home/alice/2024_hvCpG/05_hvCpGalgorithm/resultsDir/Mariads/results_Maria_pos2check_0_8p0_0_65p1.RData")
Brent = data.frame(CpG = cpg_names[as.numeric(row.names(results_Maria_pos2check_0_8p0_0_65p1))],
alpha_Brent = as.vector(results_Maria_pos2check_0_8p0_0_65p1))
Brent %>%
mutate(ishvCpG = ifelse(CpG %in% Marias_hvCpGs$CpG, "hvCpG in Maria's study", "mQTL matching controls")) %>%
ggplot(aes(x = CpG, y = alpha_Brent, fill = ishvCpG)) +
geom_point(pch=21, size = 3, alpha = .8)+ facet_grid(.~ishvCpG)
load("/home/alice/2024_hvCpG/05_hvCpGalgorithm/resultsDir/Mariads/results_Nelder_Mead_my_list_mat_Mariads_hvCpGandControls_0_8p0_0_4p1.RData")
NM = data.frame(CpG = row.names(results_Nelder_Mead_my_list_mat_Mariads_hvCpGandControls_0_8p0_0_4p1),
alpha_NM_old = as.vector(results_Nelder_Mead_my_list_mat_Mariads_hvCpGandControls_0_8p0_0_4p1))
NM %>%
mutate(ishvCpG = ifelse(CpG %in% Marias_hvCpGs$CpG, "hvCpG in Maria's study", "mQTL matching controls")) %>%
ggplot(aes(x = CpG, y = alpha_NM_old, fill = ishvCpG)) +
geom_point(pch=21, size = 3, alpha = .8)+ facet_grid(.~ishvCpG)
merge(Brent, NM) %>%
mutate(ishvCpG = ifelse(CpG %in% Marias_hvCpGs$CpG, "hvCpG in Maria's study", "mQTL matching controls")) %>% ggplot(aes(x=alpha_Brent, y=alpha_NM_old, fill = ishvCpG)) +
geom_abline(slope = 1) +
geom_point(pch=21, size = 3, alpha = .8) +
theme_bw()
The new method is much better than the old one
\[ p0 = P(Z_{j,k}=0 \mid Z_j=0) \\ p1 = P(Z_{j,k}=1 \mid Z_j=1) \]
p1 = 0.65 in Maria’s approach (to be a hvCpG, it needs to be hypervariable in >65% of the datasets)
# Step 1: Read results and compute AUC + threshold
files <- list.files(
"resultsDir/Mariads",
pattern = "^results_Maria_pos2check_.*\\.RData$",
full.names = TRUE
)
auc_df <- tibble(p0=double(), p1=double(), AUC=double(), threshold=double())
roc_list <- list()
for (f in files) {
if (file.info(f)$size == 0) next
nm <- load(f)
res <- get(nm)
pstr <- str_match(f, "_(\\d+(?:_\\d+)?)p0_(\\d+(?:_\\d+)?)p1")[, 2:3]
p0 <- as.numeric(gsub("_", ".", pstr[1]))
p1 <- as.numeric(gsub("_", ".", pstr[2]))
label <- sprintf("p0=%.2f p1=%.2f", p0, p1)
df <- as.data.frame(res) %>% rownames_to_column("CpGpos") %>%
mutate(CpG=cpg_names[as.numeric(CpGpos)])
colnames(df)[2] <- "alpha"
truth <- ifelse(df$CpG %in% Marias_hvCpGs$CpG, 1, 0)
roc_obj <- try(roc(truth, df$alpha, quiet=TRUE), silent=TRUE)
if (inherits(roc_obj, "try-error")) next
aucv <- as.numeric(auc(roc_obj))
thr <- coords(roc_obj, "best", ret = "threshold", transpose = FALSE)[["threshold"]]
auc_df <- auc_df %>% add_row(p0, p1, AUC=aucv, threshold=thr)
pts <- coords(roc_obj, "all", ret=c("sensitivity","specificity"),
transpose = FALSE) %>%
as_tibble() %>%
mutate(FPR = 1 - specificity, TPR = sensitivity, label=label)
roc_list[[label]] <- pts
}
roc_all <- bind_rows(roc_list)
# Step 2: Plot ROC curves
roc_plot <- ggplot(roc_all, aes(FPR, TPR, group=label, color=label)) +
geom_line(size=0.8, alpha=0.6) +
geom_abline(slope=1, linetype="dashed", color="gray50") +
labs(title="ROC Curves for Different (p0,p1)",
x="False Positive Rate", y="True Positive Rate") +
theme_minimal() + theme(legend.position="none")
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
# Step 3: AUC heatmap with thresholds
best <- auc_df %>% slice_max(AUC, n=1)
heatmap_plot <- ggplot(auc_df, aes(p0, p1, fill=AUC)) +
geom_tile(color="white") +
geom_text(aes(label=round(threshold,2)),
size=3, color="black", check_overlap = TRUE) +
# Outline best tile
geom_tile(data = best, aes(p0, p1), fill = NA, color = "red", linewidth = 1.5) +
scale_fill_viridis_c(option = "plasma") +
labs(title="AUC & Optimal Threshold per (p0,p1)",
x="p0", y="p1") +
theme_minimal()
# Step 4: Show both plots
print(roc_plot)
print(heatmap_plot)
The best threshold ploted in tiles is the alpha probability that gives the best sensitivity-specificity trade-off. It’s derived using a statistical rule (Youden’s J: maximizes (Sensitivity + Specificity – 1), giving the best overall balance between true positives and true negatives). It classifies a CpG as hypervariable in Maria’s approach if alpha > threshold
3 tries for (p0, p1):
makeMyPlots <-function(p0p1){
df1 = get(paste0("results_Nelder_Mead_my_list_mat_Mariads_test3000CpGsvec_", p0p1))
df2 = get(paste0("results_Nelder_Mead_my_list_mat_Mariads_mimicAtlas_test3000CpGsvec_", p0p1))
p_str = str_match(p0p1, "(\\d+_\\d+)p0_(\\d+_\\d+)p1")[, 2:3]
p0 = gsub("_", ".", p_str[1])
p1 = gsub("_", ".", p_str[2])
label = paste0("p0=", p0, ", p1=", p1)
plot1 = data.frame(df1, df2) %>%
tibble::rownames_to_column("CpG") %>%
mutate(ishvCpG = ifelse(CpG %in% MariasCpGs$CpG, "1500 hvCpG in Maria's study", "1500 mQTL matching controls")) %>%
dplyr::rename(alpha_normalDS = alpha_hat, alpha_mimicAtlas = alpha_hat.1) %>%
ggplot(aes(x = alpha_normalDS, y = alpha_mimicAtlas)) +
geom_point(aes(fill=ishvCpG), pch =21, size =3, alpha = .3) +
geom_abline(slope = 1, linetype = "dashed") + theme_bw() +
ggtitle(label = label)
# === 1) Prepare the ORIGINAL ===
df_original = df1 %>%
data.frame() %>%
tibble::rownames_to_column("CpG") %>%
mutate(ishvCpG = ifelse(
CpG %in% MariasCpGs$CpG,
"1500 hvCpG in Maria's study",
"1500 mQTL matching controls"
),
source = "original") %>%
melt()
# === 2) Prepare the MIMIC ===
df_mimic = df2 %>%
data.frame() %>%
tibble::rownames_to_column("CpG") %>%
mutate(ishvCpG = ifelse(
CpG %in% MariasCpGs$CpG,
"1500 hvCpG in Maria's study",
"1500 mQTL matching controls"
),
source = "mimicAtlas") %>%
melt()
# === 3) Combine ===
df_combined = bind_rows(df_original, df_mimic)
# === 4) Plot ===
plot2 = ggplot(df_combined, aes(x = value, y = ishvCpG, fill = ..x..)) +
geom_density_ridges_gradient(scale = 3, rel_min_height = .01) +
facet_wrap(~source, ncol = 1) +
scale_fill_viridis(name = "alpha", option = "C") +
theme_bw() +
theme(axis.title.y = element_blank()) +
labs(title = "Probability alpha of being hypervariable in my algorithm",
subtitle = "Original data of Maria vs mimic Atlas structure")
print(plot1)
print(plot2)
}
# load("resultsDir/Mariads/withAlpha0.5atStart/results_Nelder_Mead_my_list_mat_Mariads_mimicAtlas_test3000CpGsvec_0_45p0_0_6p1.RData")
# makeMyPlots(p0p1 = "0_45p0_0_6p1")
# load("resultsDir/results_Nelder_Mead_my_list_mat_Mariads_mimicAtlas_test3000CpGsvec_0_95p0_0_65p1.RData")
# makeMyPlots(p0p1 = "0_95p0_0_65p1")
# load("resultsDir/results_Nelder_Mead_my_list_mat_Mariads_mimicAtlas_test3000CpGsvec_0_9p0_0_9p1.RData")
# makeMyPlots(p0p1 = "0_9p0_0_9p1")
lambdas are defined based on a 5% threshold, even if alpha is not. How to not hardcode them? MCMC on lambda? Link with alpha?